/*******对服务器端数据API进行二次封装********/
//第一次封装： uni.request() 封装 XHR
//第二次封装： service 封装 uni.request()		

/**
 * 服务器基础地址
 */
export let base = 'https://www.codeboy.com/zhsqapi/'


/**
 * API-1.1、用户注册
 * 接口地址：user/register
 * 请求方式：POST
 * 请求主体格式：application/json
 */
export let userRegister = ()=>{
	
}

/**
 * API-1.2、用户登录
 * 接口地址：user/login
 * 请求方式：POST
 * 请求主体格式：application/json				
 */
export let userLogin = async (phone, pwd)=>{
	//1.请求地址
	let url = base + 'user/login'
	// console.log(url)
	//2.显示一个“加载中”提示框
	uni.showLoading({  title: '登录中'	})
	//3.发起异步请求
	let [err, res] = await uni.request({
		url,
		method: 'POST',
		// header: {'Content-Type': 'application/json'},  //默认值
		// header: {'Content-Type': 'application/x-www-form-urlencoded'},
		// data: `{"phone": "${phone}", "pwd":"${pwd}"}`
		data: {phone, pwd}  //请求主体设置为对象形式，会自动根据Content-Type头转换为需要的数据格式
	})
	//4.隐藏“加载中”提示框
	uni.hideLoading()
	//5.返回执行结果
	if(err){
		return {code:5000, msg:'request failed'}
	}else {
		return res.data   //异步请求成功，返回响应消息主体
	}
}


/**
 * API-1.3、当前登录用户档案
 * 接口地址：user/profile
 * 请求方式：GET
 * 请求主体：无
 * 请求头部：token
 */
export let userProfile = async ()=>{
	//1.请求地址
	let url = base + 'user/profile'
	//2.显示“加载中”
	uni.showLoading({ title: '查询中' })
	//3.发起请求，等待执行结果
	let [err, res] = await uni.request({ 
		url,
		//读取本地缓存数据token，以请求头部的方式发给服务器
		header: {token: uni.getStorageSync('userToken')} ,  
	})
	//4.隐藏“加载中”
	uni.hideLoading()
	//5.返回响应消息
	if(err){  return {code: 5000, msg: 'request failed'} }
	else {  return res.data  }
}



/**
 * API-2.1、首页数据
 * 接口地址：index/data
 * 请求方式：GET
 * 请求主体：无
 * 请求参数：无
 * 请求头部：token - 用户登录后保存在客户端身份凭证
 */
export  let  indexData = async ()=>{
	//1.请求地址
	let url = base + 'index/data'
	//2.显示“加载中”
	uni.showLoading({ title: '数据加载中' })
	//3.发起请求，等待响应消息
	let [err, res] = await uni.request({
		url,
		header: {token: uni.getStorageSync('userToken')}
	})
	//4.隐藏“加载中”
	uni.hideLoading()
	//5.返回响应数据
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}


/**
 * API-3.1、获取当前登录用户各项费用的汇总
 * 接口地址：fee/list
 * 请求方式：GET
 * 请求主体：无
 * 请求参数：无
 * 请求头部：token - 用户登录后保存在客户端身份凭证
 */
export  let  feeList = async ()=>{
	//1.请求地址
	let url = base + 'fee/list'
	//2.显示“加载中”
	uni.showLoading({ title: '数据加载中' })
	//3.发起请求，等待响应消息
	let [err, res] = await uni.request({
		url,
		header: {token: uni.getStorageSync('userToken')}
	})
	//4.隐藏“加载中”
	uni.hideLoading()
	//5.返回响应数据
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}

/**
 * 3.2、获得指定类型的收费所对应的收费单位
 * 接口地址：fee/collector
 * 请求方式：GET
 * 请求主体：无
 * 请求示例：fee/collector?type=2
 */
export  let  feeCollector = async (type)=>{
	let url = base + 'fee/collector?type=' + type
	console.log(url)     
	uni.showLoading({ title: '数据查询中' })
	let [err, res] = await uni.request({
		url
	})
	uni.hideLoading()
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}


/**
 * 3.3、提交缴费记录
 * 接口地址：fee/add
 * 请求方式：POST
 * 请求主体格式：application/json
 * 	type
 *  collectorId
 *  householdId
 *  amount
 * 请求头部：token - 用户登录后保存在客户端身份凭证
 */
export  let  feeAdd = async (type, collectorId, householdId, amount)=>{
	let url = base + `fee/add`   
	uni.showLoading({ title: '数据保存中' })
	let [err, res] = await uni.request({
		url,
		method:'POST',
		header: {token: uni.getStorageSync('userToken')},
		data: {type, collectorId, householdId, amount}
	})
	uni.hideLoading()
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}

/**
 * API-3.4、当前登录用户缴费记录
 * 接口地址：fee/record
 * 请求方式：GET
 * 请求主体：无
 * 请求参数：type、startTime、endTime
 * 请求头部：token - 用户登录后保存在客户端身份凭证
 */
export  let  feeRecord = async (type=0, startTime=0, endTime=0)=>{
	let url = base + `fee/record?type=${type}&startTime=${startTime}&endTime=${endTime}`
	console.log(url)     
	uni.showLoading({ title: '记录查询中' })
	let [err, res] = await uni.request({
		url,
		header: {token: uni.getStorageSync('userToken')}
	})
	uni.hideLoading()
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}

/**
 * API-4.1、根据业主缴费编号查询该业主的基本信息
 * 接口地址：household/query
 * 请求方式：GET
 * 请求主体：无
 * 请求示例：household/query?hhid=S60011
 * 注意：前端对此接口的请求需要防抖，时间间隔在2s以上
 */
export  let  householdQuery = async (hhid)=>{
	let url = base + `household/query?hhid=` + hhid
	console.log(url)     
	uni.showLoading({ title: '数据查询中' })
	let [err, res] = await uni.request({
		url
	})
	uni.hideLoading()
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}

/**
 * API-5.1、返回所有停车区坐标及当前空闲数据
 * 接口地址：parking/zone/list
 * 请求方式：GET
 * 请求主体：无
 * 请求示例：parking/zone/list
 */
export  let  parkingZoneList = async ( )=>{
	let url = base + 'parking/zone/list'
	console.log(url)     
	uni.showLoading({ title: '数据查询中' })
	let [err, res] = await uni.request({
		url
	})
	uni.hideLoading()
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}


/**
 * 6.3、分页获取互动消息列表
 * 接口地址：chat/query
 * 请求方式：GET
 * 请求参数：pageNum 
 */
export  let  chatQuery = async ( pageNum=1 )=>{
	let url = base + 'chat/query?pageNum=' + pageNum
	console.log(url)     
	uni.showLoading({ title: '消息查询中' })
	let [err, res] = await uni.request({
		url
	})
	uni.hideLoading()
	if(err){
		return {code:5000, msg: 'request fail'}
	}else {
		return res.data
	}
}
